1.2 生产与消费简单实例
创建topic
kafka提供了许多实用的脚本工具,存放在$KAFKA_HOME的bin目录下.其中与主题相关的就是kafka-topic.sh脚本.例如.下面创建一个分区数为4,副本为3的主题topic-demon1
2
3./kafka-topics.sh --zookeeper localhost:2181 --create --topic topic-demo --replication-factor 3 --partitions 4
Created topic "topic-demo".
--zoopkeer
指定kafka连接的zookeeper服务地址--topic
指定一个topic主题--replication-factor
指定副本因子数量--partition
指定分区数量--create
表示创建
下面命令展示了刚创建的主题信息1
2
3
4
5
6[hadoop@bi-dev152 bin]$ ./kafka-topics.sh --zookeeper localhost:2181 --describe --topic topic-demo
Topic:topic-demo PartitionCount:4 ReplicationFactor:3 Configs:
Topic: topic-demo Partition: 0 Leader: 152 Replicas: 152,153,154 Isr: 152,153,154
Topic: topic-demo Partition: 1 Leader: 153 Replicas: 153,154,152 Isr: 153,154,152
Topic: topic-demo Partition: 2 Leader: 154 Replicas: 154,152,153 Isr: 154,152,153
Topic: topic-demo Partition: 3 Leader: 152 Replicas: 152,154,153 Isr: 152,154,153
上面的命令结果表示 topic-demon
这个主题一共有4个分区,存放在3台Kafka broker服务器节点.3个broker均是ISR集合,没有OSR集合
在任意一台kafka集群内的节点服务器上执行上述命令,会得到完全相同的结果
创建consumer
kafka-console-consumer.sh
在任意一台kafka集群内的节点服务器上可以通过控制台创建一个 consumer
消费者.示例如下1
[hadoop@bi-dev154 bin]$ ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-demo
--bootstrap-server
指定连接的kafka集群地址--topic
指定消费者订阅的主题
创建producer
kafka-console-producer.sh
在任意一台kafka集群内的节点服务器上可以通过控制台创建一个 producer
消费者.示例如下1
[hadoop@bi-dev153 bin]$ ./kafka-console-producer.sh --broker-list localhost:9092 --topic topic-demo
--broker-list
指定连接的kafka集群地址--topic
指定发小时时的主题
在弹出的shell终端中,输入 hello world!
1
>hello,world!
回到 consumer
的shell终端界面,发现消费到了刚生产的消息:1
2[hadoop@bi-dev154 bin]$ ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-demo
hello,world!